package com.hemerasolutions.v2trainer.component.interfaces.search;

import java.util.Date;
import java.util.List;

import com.hemerasolutions.v2trainer.component.interfaces.BaseComponentInterface;
import com.hemerasolutions.v2trainer.component.interfaces.detail.ExerciseGroupDetailsCompInterface;
import com.hemerasolutions.v2trainer.delegate.interfaces.ExerciseGroupSearchDelegateInterface;
import com.hemerasolutions.v2trainer.model.exerciseGroup.ExerciseGroup;
import com.hemerasolutions.v2trainer.model.exerciseGroup.VersionableExerciseGroup;
import com.hemerasolutions.v2trainer.model.modality.Modality;
import com.hemerasolutions.v2trainer.model.training.TrainingType;
import com.hemerasolutions.v2trainer.service.interfaces.ExerciseGroupServiceInterface;

public interface ExerciseGroupSearchCompInterface extends BaseComponentInterface {

	public abstract void refresh();

	public abstract void init();

	public abstract void setExerciseGroupDetails(ExerciseGroupDetailsCompInterface exerciseGroupDetails);

	public abstract ExerciseGroupDetailsCompInterface getExerciseGroupDetails();

	public abstract void setExerciseGroup(ExerciseGroup exerciseGroup);

	public abstract ExerciseGroup getExerciseGroup();

	public abstract void setSelExerciseGroup(ExerciseGroup selExerciseGroup);

	public abstract ExerciseGroup getSelExerciseGroup();

	public abstract void setExerciseGroupService(ExerciseGroupServiceInterface exerciseGroupService);

	public abstract ExerciseGroupServiceInterface getExerciseGroupService();

	public abstract void setExerciseGroupFindByStatus(boolean exerciseGroupFindByStatus);

	public abstract boolean isExerciseGroupFindByStatus();

	public abstract void setExerciseGroupEndChangedAt(Date exerciseGroupEndChangedAt);

	public abstract Date getExerciseGroupEndChangedAt();

	public abstract void setExerciseGroupBegChangedAt(Date exerciseGroupBegChangedAt);

	public abstract Date getExerciseGroupBegChangedAt();

	public abstract void setExerciseGroupEndCreatedAt(Date exerciseGroupEndCreatedAt);

	public abstract Date getExerciseGroupEndCreatedAt();

	public abstract void setExerciseGroupBegCreatedAt(Date exerciseGroupBegCreatedAt);

	public abstract Date getExerciseGroupBegCreatedAt();

	public abstract void setFullModalitys(List<Modality> fullModalitys);

	public abstract List<Modality> getFullModalitys();

	public abstract void setFullTrainingTypes(List<TrainingType> fullTrainingTypes);

	public abstract List<TrainingType> getFullTrainingTypes();

	public abstract void setExerciseGroupFindByObs(String exerciseGroupFindByObs);

	public abstract String getExerciseGroupFindByObs();

	public abstract void setExerciseGroupFindByDescription(String exerciseGroupFindByDescription);

	public abstract String getExerciseGroupFindByDescription();

	public abstract void setExerciseGroupFindByName(String exerciseGroupFindByName);

	public abstract String getExerciseGroupFindByName();

	public abstract void setFindExerciseGroupByModalitys(List<Modality> findExerciseGroupByModalitys);

	public abstract List<Modality> getFindExerciseGroupByModalitys();

	public abstract void setFindExerciseGroupByTrainingTypes(List<TrainingType> findExerciseGroupByTrainingTypes);

	public abstract List<TrainingType> getFindExerciseGroupByTrainingTypes();

	public abstract void searchVersionableExerciseGroups();

	public abstract void changeFullTrainingTypes();

	public abstract void changeFullModalitysAll(org.primefaces.event.ToggleSelectEvent ev);

	public abstract void changeFullTrainingTypesAll(org.primefaces.event.ToggleSelectEvent ev);

	public abstract void toViewExerciseGroup();

	public abstract void addExerciseGroup();

	public abstract ExerciseGroupSearchDelegateInterface getExerciseGroupSearchDelegate();

	public abstract void setExerciseGroupSearchDelegate( ExerciseGroupSearchDelegateInterface exerciseGroupSearchDelegate);

	public abstract ExerciseGroupSearchDelegateInterface getDelegate();

	public abstract void setDelegate(ExerciseGroupSearchDelegateInterface delegate);

	public abstract List<VersionableExerciseGroup> getFoundedVersionableExerciseGroups();

	public abstract void setFoundedVersionableExerciseGroups(
			List<VersionableExerciseGroup> foundedVersionableExerciseGroups);

	public abstract void listAll();

	void setVersionableExerciseGroup(
			VersionableExerciseGroup versionableExerciseGroup);

	VersionableExerciseGroup getVersionableExerciseGroup();


}
